package com.cap.dreamcircle.Model;

import com.cap.dreamcircle.Model.Bean.AdCommentBean;
import com.cap.dreamcircle.Model.Bean.AdsArticleBean;
import com.cap.dreamcircle.Model.Bean.ArticalDeteial;
import com.cap.dreamcircle.Model.Bean.BaseBean;
import com.cap.dreamcircle.Model.Bean.DreamCircleFriendsBean;
import com.cap.dreamcircle.Model.Bean.DreamCircleUserRecordsBean;
import com.cap.dreamcircle.Model.Bean.DreamDetailBean;
import com.cap.dreamcircle.Model.Bean.DreamLabelBean;
import com.cap.dreamcircle.Model.Bean.DreamLabelDetailBean;
import com.cap.dreamcircle.Model.Bean.DreamRecordsMonthlyBean;
import com.cap.dreamcircle.Model.Bean.SelfSimpleDreamRecordsBean;
import com.cap.dreamcircle.Model.Bean.SolveDreamBean;

import java.util.Map;

import okhttp3.RequestBody;
import rx.Observable;

/**
 * Created by liucxu on 2017/8/10.
 */

public interface IDreamModel {
    Observable<BaseBean> RecordDream(Map<String,RequestBody> params);

    Observable<SelfSimpleDreamRecordsBean> SelfSimpleDreamRecords(int page_index);

    Observable<DreamDetailBean> DreamRecordDetail(String dreamId);

    Observable<BaseBean> PostDreamComment(String comments,String dreamId,String toUserId,String toCommentId,boolean isAnonymous);

    Observable<DreamLabelDetailBean> RequestDreamLabelDetail(String tagId,String tagName);

    Observable<DreamRecordsMonthlyBean> RequestDreamRecordsMonthly(String year,String month);

    Observable<DreamCircleFriendsBean> RequestDreamCircleRecords(int page_index);

    Observable<BaseBean> DeleteDreamCircleById(String dreamId);

    Observable<BaseBean> LikeDreamCircleRecord(String dreamId);

    Observable<DreamCircleUserRecordsBean> RequestUserDreamRecord(String userId, int pageNum);

    Observable<DreamCircleUserRecordsBean> RequestDreamRecordByDay(String day);

    Observable<SolveDreamBean> RequestSolveDreamRecordTalk(String dreamId, String pre_anchor,String last_anchor);

    Observable<BaseBean> PostDreamRecordTalk(String dreamId,String content);

    Observable<DreamLabelBean> QueryTagsByKeyWords(String keywords);

    Observable<DreamLabelBean> RequestDreamLabel(String pageNum);

    Observable<AdsArticleBean> RequestMainPageAds();

    Observable<BaseBean> ReportDreamRecord(String dreamId);

    Observable<AdCommentBean> QueryAdComments(String AdId);

    Observable<BaseBean> PostAdComment(String AdId, String comment,String toCommentId,String toUserId);

    Observable<BaseBean> LikeArtical(String dreamAdId);

    Observable<BaseBean> HasReadArtical(String articalId);

    Observable<ArticalDeteial> QuertyArticalDetail(String adId);
}
